package com.andova.component.net;

import com.andova.NETWORK;

/**
 * Created by Administrator on 2019-02-12.
 * <p>定义网络接口</p>
 *
 * @author kzaxil
 * @since 0.0.4
 */
public interface AndovaNetCallback<T extends ResponseModel> {
    /**
     * 网络请求前回调的接口
     */
    void prepare();

    /**
     * 网络请求成功，但服务端响应错误信息
     */
    void error(Object obj);

    /**
     * 网络请求成功，并获取到服务端的响应数据
     */
    void success(T respBody);

    /**
     * 网络请求成功，服务端进行响应，无论响应数据还是错误信息
     */
    void response(Object... obj);

    /**
     * 网络请求出错
     */
    void failure(Throwable throwable, Object... obj);

    /**
     * 网络请求结束回调的接口，无论响应成功还是失败
     */
    void complete(@NETWORK int code);
}
